Group Communication Systems (GCSs) are powerful building blocks that facilitate the development of fault-tolerant distributed systems. Classical GCS applications include replication using a variant of the state machine/active replication approach, primary-backup replication, support for distributed and clustered operating systems, distributed transactions and database replication, resource allocation, load balancing, system management and highly available servers. More recently, GCSs have been exploited for collaborative computing including distance learning, drawing on a shared white board, video and audio conferences and even distributed musical jam sessions over a network. Currently, real-time GCSs are being exploited for real-time applications, for example, radar tracking.
GCSs can be used to provide highly available services which are services that require maintaining a consistent shared state among numerous computers in order to guarantee high performance and availability. An example is using replicated databases. A number of instances of a database can exist in several different locations. They must all be kept synchronized in such a way that a client can query or update any of the databases and the results will be the same as if only a single copy of the database existed. A particular example is a Lightweight Directory Application Protocol (LDAP) compliant Data Server which is a high availability system used for keeping copies of data synchronized.
One aspect of such GCSs is security, and further the managing of security across multiple systems. For example, if a security policy is that any further login attempts are disregarded after three failed attempts, it is important that this applies across the GCS such that further login attempts (from a same or different machine) are still disregarded.